home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Precision Software Appli…tions Silver Collection 1
/
Precision Software Applications Silver Collection Volume One (PSM) (1993).iso
/
demos
/
qfix101.exe
/
QUICKFIX.DOC
< prev
next >
Wrap
Text File
|
1992-11-01
|
16KB
|
313 lines
╒════════════════════════════════════════╕
│ The QuickFix System (C)1992 R.Janorkar │
╘══════════════════════════╡Version 1.01╞╛
MakeFix and QuickFix software upgrade utilities
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Evaluation release dated 11/01/92
Overview
~~~~~~~~
The QuickFix System is a method for software authors to provide
minor updates to their users in a fast and efficient manner.
Often after releasing a software package, new enhancements or
bug fixes to the software require that the author release the
entire package again, even though only one file may have been
modified. If it is a large package this poses problems. Users do
not take kindly to having to download large files over a modem
at their expense, and mailing the packages is expensive for the
author. The QuickFix System compares the original file (that the
user already has along with the rest of the package) against the
modified update file and creates a compact fix file that maps
the differences between the files. The end user has to run the
accompanying applicator program to update their files to the
latest version. The QuickFix System can update several files
from within a single fix file, allowing an entire package to be
upgraded with a minimum of effort. The QuickFix System can also
generate fix files that can update from ANY one of several older
versions to the latest version (copies of the old versions must
be available when creating the fix file).
The QuickFix System consists of two parts, the MakeFix utility
that creates the fix file(s); and the QuickFix applicator that
applies the fix file(s) to the user target file(s) making it
identical to the master updated file (including the file date
and time). Another program included is a menu interface called
FixMenu for using the MakeFix utility.
The fix file generated may be distributed to users along with
the QuickFix applicator utility. Additional fixes may also be
issued in the future and applied using the same technique. The
QuickFix System can create fix files for vastly different files,
producing small update packages that are easier and cheaper to
get to the end users. The applicator utility needs no prompts or
commands, and can also be set to automatically start applying
the fix by using a default fix file name. The QuickFix utility
uses 32 bit CRCs to ensure it is fixing the correct file, and
again checks the updated file after fixing to ensure success.
Repeated attempts to apply the fix do not cause any damage,
QuickFix reports that there is no need to apply the fix and
terminates.
What's new?
~~~~~~~~~~~
There are NO new features in v1.01 - two small bugs have been
found and corrected. Both bugs were of a non-fatal nature, one
was in the menu interface utility (FIXMENU.EXE) and the second
was a typographical error in the command help screen in the
MAKEFIX.EXE utility.
Licensing
~~~~~~~~~
This version of the QuickFix System is a Demonstration version,
it is FULLY FUNCTIONAL in order to allow you to evaluate it's
performance completely. The use of this version is restricted
for evaluation ONLY. You may not distribute a fix file generated
with this demonstration version. The fix files created with this
demonstration version will always display a Demonstration
message when the fix is applied.
The QuickFix System (MakeFix, QuickFix and FixMenu) is provided
with NO warrantees, expressed or implied. Use it at your own
risk. The author will NOT be liable for any damages, direct or
indirect, arising from the ability or disability to use this
software package.
Registration of the QuickFix System gets you a permanent user
license for use on unlimited workstations and on any number of
products with NO royalty fees. The registration fee for the
QuickFix System is US $79 and includes shipping and handling (US
only, international orders please arrange payment in US Dollars
and include a US $10 shipping fee). If a newer version of the
QuickFix System is released within 30 days from the receipt of
registration, you will receive that version for free. After this
period there will be a US $15 upgrade fee (international orders
US $25). Please use the REGISTER.FRM included in this package,
or contact the author at:
R.Janorkar
651 Richmond Road,
Staten Island, NY 10304-2409
Support BBS (718) 876-0337
The MakeFix utility
~~~~~~~~~~~~~~~~~~~
The syntax for MakeFix is:
MAKEFIX original.ext (xxx) modified.ext (yyy) fixfile.ext
where original.ext is the original path\filename.extension;
and (xxx) is an optional comment that describes the original
file and must be within parenthesis ();
and modified.ext is the modified path\filename.extension;
and (xxx) is an optional comment that describes the modified
file and must be within parenthesis ();
and fixfile.ext is the fix path\filename.extension to create.
The name of the original file MUST be exactly the same as what
the end users will have, since the name is contained within the
fix file. The name of the modified file could be anything, since
this file is used only for comparing. The name of the fix file
too could be anything convenient, the default extension that the
QuickFix applicator assumes is .QF and the default filename is
QUICKFIX.QF (see the next section for more information). The
comments are displayed when the file is being processed by the
QuickFix applicator and should reflect the version or release
numbers. The comments must be contained within parenthesis. This
lets the end user know exactly what upgrading QuickFix is doing.
It is also possible to update several files from a single fix
file and to upgrade from any one of a series of versions to the
latest release. When MakeFix finds that a specified fix file
already exists, it checks the validity of the file. If the fix
file is valid, the new file information is appended to the same
fix file. If the fix file is not valid, it is deleted and a new
file is created. In order to use the series upgrading feature, a
copy of each version of the file is required. It is recommended
that separate directories be created that will hold each release
then use MakeFix to generate the fix files sequentially (e.g.
first version 1.0 to version 2.0 then version 2.0 to version 3.0
etc) using the same fix file. When such a fix is applied, any
version in the series will be upgraded to the next release, and
so on until the end result is the latest version. Note that you
MUST observe the correct version sequence when creating the fix
file, or it will not work. If the target file does not match any
of the series, a message will be displayed and the applicator
will attempt to continue if more files are specified in the fix
file.
All the file paths used should be explicitly specified if they
are not in the current directory. Use of the FixMenu interface
is detailed in the following sections.
The QuickFix utility
~~~~~~~~~~~~~~~~~~~~
The syntax for QuickFix is:
QUICKFIX fixfile.ext
where fixfile.exe is the fix filename.extension.
The fix file must be in the same directory as the target file
that is to be modified. If no file extension is specified, .QF
is assumed. If the fix file is named QUICKFIX.QF no command line
is required, QuickFix will use this default file automatically.
Otherwise a message is displayed with the correct syntax for the
utility.
QuickFix will first check the CRC of the target file, and if it
matches the fix is applied. If the target file does not match a
message is displayed. The CRC is checked again after the fix is
applied. QuickFix also checks to see if the file is already up
to date, and informs the user if this is the case. Operation
takes no more than a few seconds for most fix applications. The
target file is updated to match the master update file exactly
byte for byte, and even the file date and time will be exactly
the same. The fix file and the applicator utility may then be
deleted by the user. If multiple file update information is in
the fix file, all the files will be processed. A message will be
displayed detailing the status of each file processed. If any
files are missing, or an error occurs, QuickFix will attempt to
continue with the next file.
In the event of an error, QuickFix will also prompt the user
with a possible cause or solution. While this information is
very generic, it will help diagnose the exact difficulty the
user is facing. The possible errors and messages are:
┌Command line error, syntax :
│QuickFix <fixfile.[ext]>
│where <fixfile.[ext]> is the name of the fix file
│supplied with this utility. QuickFix must be run in
└the same directory as the target file to process.
√ If an incorrect or no command line is entered.
┌ERROR - Cannot find/open fix file!
│Solution - Enter the correct fix filename.ext,
└ check if fix file is in current directory.
√ If an incorrect fix filename is entered, or if the fix file is
not found in the current directory.
[Unable to open/find target file <filename> - skipping ...
√ If the target file (the file that is to be fixed) is not found,
or is marked Read-Only or any other DOS error occurred that
prevented QuickFix from opening this file. Note that QuickFix
will attempt to continue if it is a multiple update fix file.
[Target file <filename> <comment 1> does not match, skipping ...
√ The target file does not match the CRC encoded into the fix
file, and has possibly been compressed, tampered with or is an
incorrect version. The comment describing the modified file will
be displayed here, so the user knows what version is expected.
Note that QuickFix will attempt to continue if it is a multiple
update fix file.
┌ERROR - Failure while fixing target file!
│Solution - Possible disk error, or DOS error,
└ or corrupt fix file.
√ A fatal error occurred that prevented the target file from being
fixed. This could happen if the disk is full, a disk error
occurred, or the fix file was corrupt. The target file will be
left unchanged.
┌ERROR - Fix file was created with an incompatible version!
└Solution - Obtain the correct QuickFix applicator version.
√ QuickFix recognizes the version of MakeFix that was used to
create the fix file with, if an incompatible version is detected
QuickFix will not attempt to fix the target file.
[Target file <filename> <comment 2> is current - skipping ...
√ This is a benign error that occurs if the target file is already
up to date. QuickFix will not attempt to fix it again. Note that
QuickFix will attempt to continue if it is a multiple update fix
file.
┌ERROR - Target file FAILED CRC validation after fixing!
└Solution - Contact technical support, this should NEVER happen!
√ This is a very fatal error that should never occur. No damage is
done, QuickFix will restore the target file to it's original
unmodified form. DOS SHARE violations could possibly be the
cause, or attempting to access the target file under a multiuser
or multitasking environment.
The FixMenu interface shell
~~~~~~~~~~~~~~~~~~~~~~~~~~~
A simple menu interface is included with this package. FixMenu
offers a menu to control the creation of fix files. You can
select the original and modified files from the directory map.
You can specify several different or appended fix files, and
MakeFix will be automatically loaded with the correct parameters
for each selection and generate the required fix file(s). Online
help is available at all times with the F1 key.
Epilogue
~~~~~~~~
Both the MakeFix and QuickFix utilities are written in assembly
language using the Microsoft Macro Assembler v5.10 and linked
with the Microsoft Linker. The MakeFix utility requires about
75K of system memory while the QuickFix utility requires about
70K. The FixMenu interface shell requires almost 300K system
memory. No EMS or EXTended memory is needed.
There are some factors to consider when issuing QuickFix updates
to your software. The MakeFix utility will create a fix file for
virtually ANY nature of differences.
When compiling and linking the updated version you must try and
keep the same environment and switches. While differences are
bound to exist the idea is to minimize them, allowing MakeFix to
generate smaller and more optimal fix files. With very large
files with thousands of differences, it could take MakeFix
several hours to create a fix file!
The MakeFix utility can only create fix files for UNCOMPRESSED
files that have some semblance of similarity. Using any form of
executable file compression such as EXEPACK, PKLITE or LZEXE
will make it impossible to create a fix file! The advantage of
being able to distribute compact fix files far outweighs any
reasons to use executable file compressors, besides the fact
that most packages are archived for distribution (ZIP, ARJ etc).
Non-executable files such as binary or text files can also be
upgraded using the QuickFix System, this offers the ability to
upgrade program documentation and support files along with the
program.
Thanks go to the ßeta boys
~~~~~~~~~~~~~~~~~~~~~~~~~~
Ron 'Da Q' Kulick
Harris 'Speedy' Lam
David 'The Man' Kaufman
PKLITE is the copyright/trademark of PKWARE Inc;
ZIP is the copyright/trademark of PKWARE Inc;
LZEXE is the copyright/trademark of Fabrice Bellard;
EXEPACK is the copyright/trademark of Microsoft Inc;
ARC is the copyright/trademark of System Enhancement Associates;
other products mentioned in this documentation may be copyrights
and/or trademarks of other software companies.